package org.biloxi.player.actions;

import org.biloxi.commands.CommandRepository;
import org.biloxi.model.GameState;
import org.biloxi.model.player.PlayerState;

public final class ActionOptionPair<O> {
	public final PlayerAction<O> action;
	public final O options;
	public ActionOptionPair(PlayerAction<O> action, O o) {
		this.action = action;
		this.options = o;
	}
	public final boolean isLegal(GameState gs, PlayerState ps){
		return action.isLegal(gs, ps, options);
	}
	public final void execute(GameState gs, PlayerState ps, CommandRepository cr){
		action.execute(gs, ps, cr, options);
	}
}
